import { apiClient } from 'axiom-view';

export const knowledgeBaseApi = {
  /**
   * 创建新的知识库
   * @param {object} data - 知识库创建数据
   * @param {string} data.name - 显示名称
   * @param {string} data.description - 描述
   * @param {string} data.indexing_embedding_profile - 用于索引的 Embedding 模型
   * @param {string} data.query_embedding_profile - 用于查询的 Embedding 模型
   * @returns {Promise<any>}
   */
  create(data) {
    return apiClient.post('/knowledge-bases', data);
  },

  /**
   * 获取知识库列表（分页）
   * @param {object} params - 查询参数
   * @param {number} params.page - 页码
   * @param {number} params.page_size - 每页数量
   * @returns {Promise<any>}
   */
  getList(params) {
    return apiClient.get('/knowledge-bases', { params });
  },

  /**
   * 获取知识库详情
   * @param {string} id - 知识库ID
   * @returns {Promise<any>}
   */
  getById(id) {
    return apiClient.get(`/knowledge-bases/${id}`);
  },

  /**
   * 更新知识库信息
   * @param {string} id - 知识库ID
   * @param {object} data - 更新数据
   * @param {string} [data.name] - 新的显示名称
   * @param {string} [data.description] - 新的描述
   * @param {string} [data.indexing_embedding_profile] - 新的索引 Embedding 模型
   * @param {string} [data.query_embedding_profile] - 新的查询 Embedding 模型
   * @returns {Promise<any>}
   */
  update(id, data) {
    return apiClient.put(`/knowledge-bases/${id}`, data);
  },

  /**
   * 删除知识库
   * @param {string} id - 知识库ID
   * @returns {Promise<any>}
   */
  delete(id) {
    return apiClient.delete(`/knowledge-bases/${id}`);
  },

  /**
   * 获取分组后的 Embedding 模型配置档案
   * @returns {Promise<any>}
   */
  getEmbeddingProfileGroups() {
    return apiClient.get('/knowledge-bases/config/embedding-profile-groups');
  },

  /**
   * [新增] 获取所有知识库的简化列表（不分页）
   * @returns {Promise<ApiResponse<KnowledgeBaseSimpleVO[]>>}
   */
  listAllSimple() {
    return apiClient.get('/knowledge-bases/list-all');
  },

  /**
   * 对知识库中的文档执行索引
   * @param {string} kbId - 知识库ID
   * @param {object} data - 索引配置
   * @returns {Promise<any>}
   */
  runIndexing(kbId, data) {
    return apiClient.post(`/indexing/${kbId}`, data);
  },
}; 